'''
@Author: B.N
@Date: 2018-11-19 16:10:29
@LastEditors: B.N
@LastEditTime: 2018-11-29 14:40:01
@Description: python特训班第一周作业:递归统计目录大小函数
'''

import os


#定义函数
def File_Dir_Size(sFile_Dir_Path):
    '''
    @Description: 统计目录大小
    @param ： 文件目录
    @return: 目录大小
    '''
    #获取目录并初始化文件大小
    Dir_List = os.listdir(sFile_Dir_Path)
    nFile_Dir_Size = 0
    #遍历文件并将文件大小累加
    for Dir_Member in Dir_List:
        #为遍历的我那件添加目录路径
        sDir_Path = os.path.join(sFile_Dir_Path, Dir_Member)
        #判断是否为文件
        if os.path.isfile(sDir_Path):
            nFile_Dir_Size += os.path.getsize(sDir_Path)
        #判断是否为路径
        if os.path.isdir(sDir_Path):
            nFile_Dir_Size += File_Dir_Size(sDir_Path)
    return nFile_Dir_Size


#引用函数
while True:
    sDir_Path = input("请输入目录路径(输入q退出程序)：")
    #退出循环
    if sDir_Path == "q":
        print("退出程序")
        break
    #检测目录是否存在
    if os.path.exists(sDir_Path) == False:
        print("目录不存在")
        continue
    nDir_Size = File_Dir_Size(sDir_Path)
    print(nDir_Size)